Imports Sys = System
Imports Tex = System.Text

Namespace Enhancements.Core.Logging
    ''' <summary>A type of configuration specific to SingleLineFormatter instances.</summary>
    Public NotInheritable Class SingleLineFormatterConfiguration
        Inherits FormatterConfiguration

        ''' <summary>Initializes a SingleLineFormatterConfiguration instance, with default values.</summary>
        Public Sub New()
        End Sub
        ''' <summary>Initializes a SingleLineFormatterConfiguration instance.</summary>
        ''' <param name="_encoding">Encoding to use by the instance.</param>
        ''' <param name="_separationCharacter">SeparationCharacter to use by the instance.</param>
        ''' <exception cref="IsNullException">_encoding is null.</exception>
        Public Sub New(ByVal _encoding As Tex.Encoding, ByVal _separationCharacter As System.Char)
            Encoding = _encoding
            SeparationCharacter = _separationCharacter
        End Sub

        Private __Encoding As Tex.Encoding = Tex.UTF32Encoding.UTF32
        ''' <summary>Gets and sets the encoding used by the instance. The default value is 'System.Text.UTF32Encoding.UTF32'.</summary>
        ''' <exception cref="IsNullException">The value is null (while setting).</exception>
        Public Property Encoding() As Tex.Encoding
            Get
                Return __Encoding
            End Get
            Set(ByVal _value As Tex.Encoding)
                ___Assert.___IsNullNot("Encoding._value", _value, True)

                __Encoding = _value
            End Set
        End Property

        Private __SeparationCharacter As System.Char = ";"c
        ''' <summary>Gets and sets the separation character used by the instance. The default value is ';'.</summary>
        Public Property SeparationCharacter() As System.Char
            Get
                Return __SeparationCharacter
            End Get
            Set(ByVal _value As System.Char)
                __SeparationCharacter = _value
            End Set
        End Property

    End Class
End Namespace
